<?php

/**
 * Classe représentant une évaluation d'étudiant.
 * @author CHAGNON Laura, BALMAND Clémence
 * @since 25 septembre 2013
 * @version 1.0
 */

class EvaluationEleve
{
		/*Attributs*/
	/**
	 * Identifiant de l'évaluation
	 * @var int
	 */
	private $_id;

	/**
	 * ID de l'étudiant associé à l'évaluation
	 * @var int
	 */
	private $_id_etudiant;

	/**
	 * Forum associé à l'évaluation
	 * @var int
	 */
	private $_id_forum;

	/**
	 * Présence ou non de l'étudiant
	 * @var int
	 */
	private $_present;

	/**
	 * Présence de l'étudiant
	 * @var string
	 */
	private $_presence;

	/**
	 * Durée de la présence
	 * @var string
	 */
	private $_dureePresence;

	/**
	 * Tenue vestimentaire de l'étudiant
	 * @var string
	 */
	private $_tenueVestimentaire;

	/**
	 * Discours de l'étudiant
	 * @var string
	 */
	private $_discours;

	/**
	 *  Participation logistique de l'étudiant
	 *  @var string
	 */
	private $_participationLogistique;

	/**
	 * Commentaire a faire sur l'étudiant
	 * @var string
	 */
	private $_commentaire;

	/*Constructeur */

	public function __construct()
	{
		$args = func_get_args();
		switch(func_num_args())
		{
			case 1 : // ID_FORUM_EVALUATION
				$this->set_id_forum($args[0]);
				break;
			case 2 : // ID_ETU_EVALUATION, ID_FORUM_EVALUATION
				$this->set_id_etudiant($args[0]);
				$this->set_id_forum($args[1]);				
				break;
			case 9 : // ID_ETU_EVALUATION, ID_FORUM_EVALUATION, PRESENT_EVALUATION, PRESENCE_EVALUATION, DUREE_PRESENCE_EVALUATION, TENUE_VESTIMENTAIRE_EVALUATION, DISCOURS_EVALUATION, LOGISTIQUE_EVALUATION, COMMENTAIRE_EVALUATION
				$this->set_id_etudiant($args[0]);
				$this->set_id_forum($args[1]);
				$this->set_present($args[2]);
				$this->set_presence($args[3]);
				$this->set_dureePresence($args[4]);
				$this->set_tenueVestimentaire($args[5]);
				$this->set_discours($args[6]);
				$this->set_participationLogistique($args[7]);
				$this->set_commentaire($args[8]);
				break;
			default:
				trigger_error('Constructeur EvaluationEleve avec ' + func_num_args() + ' non défini.');
				break;
		}

	}

	/* Méthodes BDD */

	public function getOneEvaluationEleve()
	{
		$bdd = PDO2::getInstance();
		$donnees = $bdd->query(	'SELECT '.ID_EVALUATION.', '.ID_ETU_EVALUATION.', '.ID_FORUM_EVALUATION.', '.PRESENT_EVALUATION.', '.PRESENCE_EVALUATION.', TIME_FORMAT('.DUREE_PRESENCE_EVALUATION.',"%H:%i") AS "'.DUREE_PRESENCE_EVALUATION.'", '.TENUE_VESTIMENTAIRE_EVALUATION.', '.DISCOURS_EVALUATION.', '.LOGISTIQUE_EVALUATION.', '.COMMENTAIRE_EVALUATION.'
								FROM '.TABLE_EVALUATION_ELEVE.' 
								WHERE '.ID_FORUM.' = \''.$this->get_id_forum().'\'
								AND '.ID_ETU_EVALUATION.' = '.$this->get_id_etudiant());

		$d = $donnees->fetch();

		$this->set_id($d[ID_EVALUATION]);
		$this->set_present($d[PRESENT_EVALUATION]);
		$this->set_presence($d[PRESENCE_EVALUATION]);
		$this->set_dureePresence($d[DUREE_PRESENCE_EVALUATION]);
		$this->set_tenueVestimentaire($d[TENUE_VESTIMENTAIRE_EVALUATION]);
		$this->set_discours($d[DISCOURS_EVALUATION]);
		$this->set_participationLogistique($d[LOGISTIQUE_EVALUATION]);
		$this->set_commentaire($d[COMMENTAIRE_EVALUATION]);
	}

	public static function verifEtudiantFicheForum($nb, $duree, $presence, $tenue,$oral, $logistique)
	{
		$erreur=0;
		if(!empty($duree))
		{
			if(!empty($presence))
			{
				if(!empty($tenue))
				{
					if(!empty($oral))
					{
						if(!empty($logistique))
						{
						}
						else
						{
							$erreur=1;
						}
					}
					else
					{
						$erreur=1;
					}
				}
				else
				{
					$erreur=1;
				}
			}
			else
			{
				$erreur=1;
			}
		}
		else
		{
			$erreur=1;
		}
		if($erreur == 1)
			return false;
		else
			return true;
	}

	public function saveOneEvaluationEleve()
	{
		if($this->get_commentaire()==null)
			$commentaire="null";
		else
			$commentaire= '"'.$this->get_commentaire().'"';

		$result = false;

		$bdd = PDO2::getInstance();
		if($this->get_present()==2)
		{
			$result = $bdd->exec('INSERT INTO '.TABLE_EVALUATION_ELEVE.' ('.ID_ETU_EVALUATION.', '.ID_FORUM_EVALUATION.', '.PRESENT_EVALUATION.')
					VALUES ('.$this->get_id_etudiant().', '.$this->get_id_forum().', '.$this->get_present().')');		
		}
		else
		{
			$result = $bdd->exec('INSERT INTO '.TABLE_EVALUATION_ELEVE.' ('.ID_ETU_EVALUATION.', '.ID_FORUM_EVALUATION.', '.PRESENT_EVALUATION.', '.PRESENCE_EVALUATION.', '.DUREE_PRESENCE_EVALUATION.', '.TENUE_VESTIMENTAIRE_EVALUATION.', '.DISCOURS_EVALUATION.', '.LOGISTIQUE_EVALUATION.', '.COMMENTAIRE_EVALUATION.')
				VALUES ('.$this->get_id_etudiant().', '.$this->get_id_forum().', '.$this->get_present().', "'.$this->get_presence().'", "'.$this->get_dureePresence().'", "'.$this->get_tenueVestimentaire().'", "'.$this->get_discours().'", "'.$this->get_participationLogistique().'", '.$commentaire.')');
		}

		if($result == 0)
			return false;
		else
			return true;
	}
	public function modifOneEvaluationEleve()
	{
		$bdd = PDO2::getInstance();
		$result = $bdd->exec('UPDATE '.TABLE_EVALUATION_ELEVE.
								' SET '.PRESENT_EVALUATION.' = '.$this->get_present().', '.PRESENCE_EVALUATION.' = '.$this->get_presence().', '.DUREE_PRESENCE_EVALUATION.' = "'.$this->get_dureePresence().'", '.TENUE_VESTIMENTAIRE_EVALUATION.' = '.$this->get_tenueVestimentaire().', '.DISCOURS_EVALUATION.' = '.$this->get_discours().', '.LOGISTIQUE_EVALUATION.' = '.$this->get_participationLogistique().', '.COMMENTAIRE_EVALUATION.' = "'.$this->get_commentaire().'"
								WHERE '.ID_FORUM.' = \''.$this->get_id_forum().'\'
								AND '.ID_ETU_EVALUATION.' = '.$this->get_id_etudiant()
				);
		if($result == 0)
			return false;
		else
			return true;
	}

	/*methode*/
	/*genererFiche
	sauvegarderFiche
	recupérerFiche*/

	/*Getters et Setters*/


	/**
	 * Fonction permettant de récupérer l'identifiant de l'évaluation
	 * @return int
	 */
	public function get_id()
	{
		return $this->_id;
	}

	/**
	 * Fonction permettant de modifier l'identifiant de l'évalutation
	 * @param int
	 */
	public function set_id($id)
	{
		$this->_id=$id;
	}
	
	/**
	 * Fonction permettant de récupérer l'étudiant 1 du forum.
	 * @access public
	 * @return Etudiants
	 */
	public function get_etudiant()
	{
		$e = new Etudiants($this->get_id_etudiant());
		$e->getOneEtudiant();
		return $e;
	}

	/**
	 * Fonction permettant de récupérer l'id de l'étudiant associé à l'évaluation
	 * @return int
	 */
	public function get_id_etudiant()
	{
		return $this->_id_etudiant;
	}

	/**
	 * Fonction permettant de modifier l'étudiant associé à l'évaluation
	 * @param int
	 */
	public function set_id_etudiant($etudiant)
	{
		$this->_id_etudiant=$etudiant;
	}

	/**
	 * Fonction permettant de récupérer le forum associé à l'évaluation
	 * @return int
	 */
	public function get_id_forum()
	{
		return $this->_id_forum;
	}

	/**
	 * Fonction permettant de modifier le forum associé à l'évaluation
	 * @param int
	 */
	public function set_id_forum($forum)
	{
		$this->_id_forum=$forum;
	}

	/**
	 * Fonction permettant de récupérer la présence de l'étudiant
	 * @return int
	 */
	public function get_present()
	{
		return $this->_present;
	}

	/**
	 * Fonction permettant de modifier la présence de l'étudiant
	 * @param int
	 */
	public function set_present($present)
	{
		$this->_present = $present;
	}

	/**
	 * Fonction permettant de récupérer comment était la présence de l'étudiant
	 * @return string
	 */
	public function get_presence()
	{
		return $this->_presence;
	}

	/**
	 * Fonction permettant de modifier comment était la présence de l'étudiant
	 * @param string
	 */
	public function set_presence($presence)
	{
		$this->_presence = $presence;
	}

	/**
	 * Fonction permettant de récupérer la durée de la présence de l'étudiant
	 * @return string
	 */
	public function get_dureePresence()
	{
		return $this->_dureePresence;
	}

	/**
	 * Fonction permettant de modifier la durée de la présence de l'étudiant
	 * @param string
	 */
	public function set_dureePresence($dureePresence)
	{
		$this->_dureePresence = $dureePresence;
	}

	/**
	 * Fonction permettant de récupérer la tenue vestimentaire de l'étudiant
	 * @return string
	 */
	public function get_tenueVestimentaire()
	{
		return $this->_tenueVestimentaire;
	}

	/**
	 * Fonction permettant de modifier la tenue vestimentaire de l'étudiant
	 * @param string
	 */
	public function set_tenueVestimentaire($tenueVestimentaire)
	{
		$this->_tenueVestimentaire = $tenueVestimentaire;
	}

	/**
	 * Fonction permettant de récupérer le discours de l'étudiant
	 * @return string
	 */
	public function get_discours()
	{
		return $this->_discours;
	}

	/**
	 * Fonction permettant de modifier le discours de l'étudiant
	 * @param string
	 */
	public function set_discours($discours)
	{
		$this->_discours=$discours;
	}

	/**
	 * Fonction permettant de récupérer la participation logistique
	 * @return string
	 */
	public function get_participationLogistique()
	{
		return $this->_participationLogistique;
	}

	/**
	 * Fonction permettant de modifier la participation logistique
	 * @param string
	 */
	public function set_participationLogistique($participationLogistique)
	{
		$this->_participationLogistique=$participationLogistique;
	}

	/**
	 * Fonction permettant de récupérer le commentaire de l'évaluation
	 * @return string
	 */
	public function get_commentaire()
	{
		return $this->_commentaire;
	}

	/**
	 * Fonction permettant de modifier le commentaire de l'évaluation
	 * @param string
	 */
	public function set_commentaire($commentaire)
	{
		$this->_commentaire=$commentaire;
	}

}

?>